Base Pointer
別名など: BP, ベースポインタ
実行中の関数が使用しているスタック領域の底(ベース)を示すレジスタ。
Stack Pointerはpush/popによって上下するがBase Pointerより大きくなることはない。
Base Pointerで基準を決めておくことで[ebp + 4]のようにオフセットで一対一に対応できる。当たり前だがStack Pointerだと、pushやpopをするたびにオフセットが変わってしまう。
関数ごとのスタック領域とBase Pointerのイメージ
https://scrapbox.io/files/62bd372d3c861b001d69856d.png
引用: https://note.com/nekotricolor/n/n2a247c808275